package com.ruoyi.labdata.service;

import java.util.List;

import com.ruoyi.labdata.domain.LabFile;
import com.ruoyi.labdata.domain.LabReservation;
import com.ruoyi.wechatapi.domain.QueryEntity;

/**
 * 实验室预约Service接口
 * 
 * @author ruoyi
 * @date 2022-03-27
 */
public interface ILabReservationService 
{
    /**
     * 查询实验室预约
     * 
     * @param instanceId 实验室预约ID
     * @return 实验室预约
     */
    public LabReservation selectLabReservationById(Long instanceId);

    /**
     * 查询实验室预约列表
     * 
     * @param labReservation 实验室预约
     * @return 实验室预约集合
     */
    public List<LabReservation> selectLabReservationList(LabReservation labReservation);

    /**
     * 新增实验室预约
     * 
     * @param labReservation 实验室预约
     * @return 结果
     */
    public int insertLabReservation(LabReservation labReservation);

    /**
     * 修改实验室预约
     * 
     * @param labReservation 实验室预约
     * @return 结果
     */
    public int updateLabReservation(LabReservation labReservation);

    /**
     * 修改实验室预约
     *
     * @param labReservation 实验室预约
     * @return 结果
     */
    public int updateLabReservationStatus(LabReservation labReservation);


    /**
     * 批量删除实验室预约
     * 
     * @param instanceIds 需要删除的实验室预约ID
     * @return 结果
     */
    public int deleteLabReservationByIds(Long[] instanceIds);

    /**
     * 删除实验室预约信息
     * 
     * @param instanceId 实验室预约ID
     * @return 结果
     */
    public int deleteLabReservationById(Long instanceId);

    //实验室预约流程提交
    int commitLabReservation(LabReservation labReservation);

    List<LabFile> getInstanceFiles(Long instanceId);
    
    List<LabReservation> queryLabReservationBlackList(LabReservation labReservation);

    List<LabReservation> selectReservationList(QueryEntity queryEntity);
}
